package ejb.casacentral.service;

import java.io.Serializable;
import java.util.List;
import java.util.Set;

import javax.ejb.EJB;
import javax.ejb.Stateless;

import ejb.casacentral.log.CasaLogger;
import ejb.casacentral.persistence.entity.ListadoPrecios;
import ejb.casacentral.persistence.entity.SolicitudCompra;
import ejb.casacentral.service.controller.ListadoController;
import ejb.casacentral.service.controller.OrdenCompraController;
import ejb.casacentral.service.controller.RemitoController;
import ejb.casacentral.service.controller.RodamientoController;
import ejb.casacentral.service.controller.SolicitudController;

@Stateless
public class FachadaSessionBean implements FachadaSession, Serializable {
	
	private static final long serialVersionUID = 1L;
	
	@EJB
	private RodamientoController rodamientoController;
	
	@EJB
	private SolicitudController solicitudController;
	
	@EJB
	private OrdenCompraController ordenController;
	
	@EJB
	private RemitoController remitoController;
	
	@EJB
	private LocalSession localSession;
	
	@EJB
	private  ListadoController listadoController;

	@Override
	public List<SolicitudCompra> obtenerSolicitudesDeCompra() {
		CasaLogger.log();
		return solicitudController.obtenerSolicitudesDeCompra();
	}

	@Override
	public void Inicializador() {
		CasaLogger.log();
		localSession.grupos();
	}

	@Override
	public void generarOrdenesDeCompra(String xml) {
		CasaLogger.log();
		ordenController.generarOrdenesDeCompra(xml);
	}

	@Override
	public void guardarListadoPreciosPorXML(String xml) {
		CasaLogger.log();
		listadoController.guardarListadoPreciosPorXML(xml);
	}

	@Override
	public String obtenerCotizacion(String xml) {
		CasaLogger.log();
		return rodamientoController.getCotizacion(xml);
	}

	@Override
	public void generarRemitos(Set<String> codigosSolicitudes) {
		CasaLogger.log();
		remitoController.generarRemitos(codigosSolicitudes);
	}

	@Override
	public void recibirOrdenAceptada(String ordenAceptada) {
		CasaLogger.log();
		ordenController.recibirOrdenAceptada(ordenAceptada);
	}

	@Override
	public String nuevoRodamiento(String rodamiento) {
		CasaLogger.log();
		return rodamientoController.nuevoRodamiento(rodamiento);
	}

	@Override
	public List<SolicitudCompra> obtenerSolicitudesDeCompraCompletas() {
		CasaLogger.log();
		return solicitudController.obtenerSolicitudesDeCompraCompletas();
	}
	
	@Override
	public List<ListadoPrecios> obtenerListadoPrecio() {
		CasaLogger.log();
		return listadoController.obtenerListadoPreciosDesdeProveedores();
	}

	@Override
	public boolean isTestMode() {
		// TODO Auto-generated method stub
		return localSession.isTestMode();
	}

}
